使用Numpy实现数组索引和切片的"添加"操作

您所在的位置:网站首页 python numpy二维数组切片 使用Numpy实现数组索引和切片的"添加"操作

使用Numpy实现数组索引和切片的"添加"操作

2023-04-03 07:53| 来源: 网络整理| 查看: 265

1> hpaulj..:

使用foo[idx].阅读以下内容,了解我是如何实现这一目标的.

foo[1,2,:] 有效地:

In [379]: foo[(1,2,slice(None))] Out[379]: array([ 0., 1., 0.])

Python解释器将转换1,2,:为此元组,并将其传递给foo.__getitem__方法.

所以我们必须找到构建元组的正确方法.一个是:

In [380]: tuple(idx)+(slice(None),) Out[380]: (1, 2, slice(None, None, None))

导致:

In [381]: foo[tuple(idx)+(slice(None),)] Out[381]: array([ 0., 1., 0.])

其实我不需要tuple电话,idx已经是一个元组了

In [386]: idx Out[386]: (1, 2) In [387]: idx+(slice(None),) Out[387]: (1, 2, slice(None, None, None))

我需要tuple([1,2]),如果idx草签为列表.

实际上是双重的,解决方案更简单.由于我们使用:的是最后一个维度,我们可以省略它.由于idx是元组,它已经索引了前两个维度.

In [394]: foo[idx] Out[394]: array([ 0., 1., 0.])

这对电话可以提供一些清晰度:

In [396]: foo[(1,2)] Out[396]: array([ 0., 1., 0.]) In [397]: foo[[1,2]] Out[397]: array([[[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 1., 0.]], [[ 0., 0., 0.], [ 0., 0., 0.], [ 0., 0., 0.]]])


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3